<?php

namespace app\admin\controller;

use think\Controller;
use think\Request;

/**
 * 客房信息类
 */
class Rooms extends Base
{
    /**
     * 创建民宿信息
     */
    public function created()
    {
        // 所有需要创建的数据的key值便于下方循环时拿取前端数据
        $optionKey = ['introduce', 'price', 'region_id', 'specifications_id', 'mobile', 'name', 'address'];

        $option = [];
        // 根据key值来获取前端数据
        foreach ($optionKey as $value) {
            if (!input("?{$value}") && empty(input($value))) {
                return Result(0, '数据填写不完全');
            }
            $option[$value] = input($value);
        }

        $images = [];
        if (input("?images")) {
            $images = input('images');
        }
        return model('Rooms')->Created($option, $images);
    }

    public function del($id = 0)
    {
        if (empty($id)) {
            return Result(0, '请选择正确的数据');
        }

        return model('Rooms')->DeleteById($id);
    }

    public function read($id = 0)
    {
        if (empty($id)) {
            return Result(0, '请选择正确的数据');
        }

        return model('Rooms')->GetInfo($id);
    }

    public function list($page = 0)
    {
        $optionKey = [ 'max_price', 'name', 'region_id', 'region_name','specifications_id', 'specifications_name', 'mobile'];

        $option = [];
        foreach ($optionKey as $key => $value) {
            if (input("?$value") && !empty(input("$value"))) {
                $option[$value] = input("$value");
            }
        }
        
        return model('Rooms')->GetList($page, $option);
    }

    public function modify($id = 0)
    {
        if (empty($id)) {
            return Result(0, '请选择正确的数据');
        }

        $optionKey = ['introduce', 'price', 'region_id', 'specifications_id', 'mobile', 'acreage'];

        $option = [];
        foreach ($optionKey as $value) {
            if (input("?{$value}") && !empty(input($value))) {
                $option[$value] = input($value);
            }
        }

        $images = [];

        if (input("?images") && !empty($images)) {
            $images = input('images');
        }
        return model('Rooms')->ModifyData($id, $option, $images);
    }

    /**
     * 获取所有的订单列表 可带查询条件
     */
    public function reservation_list($page)
    {
        // 获取并判断前端传来的查询条件
        $optionKey = ['user_mobile', 'rooms_mobile', 'user_id', 'rooms_id'];
        $option = [];
        foreach ($optionKey as $value) {
            if (input("?{$value}") && !empty(input($value))) {
                $option[$value] = input($value);
            }
        }
        if (input("?state") && input('state') !== null && input('state') !== '' && input('state') !== -1) {
            $option['state'] = input('state');
        }
        if (input('?start_time') && input('?end_time')) {
            if (empty(input('start_time')) && empty(input('end_time'))) {
                $option['start_time'] = input('start_time');
                $option['end_time'] = input('end_time');
            }
        }
    
        return model('RoomsUser')->GetReservationList($page, $option);
    }
    /**
     * 查询单个预定的信息
     */
    public function reservation_read($id = 0)
    {
        if (empty($id)) {
            return Result(0, '请选择正确的数据');
        }

        return model('RoomsUser')->GetReservation($id);
    }

    /**
     * 修改预定信息
     */
    public function reservation_modify($id = 0)
    {
        if (empty($id)) {
            return Result(0, '请选择正确的数据');
        }

        $optionKey = ['mobile', 'start_time', 'end_time', 'state', 'rooms_id'];
        $option = [];
        foreach ($optionKey as $value) {
            if (input("?{$value}") && !empty(input($value))) {
                $option[$value] = input($value);
            }
        }

        if (input('?state') && input('state') !== '' && input('state') !== null) {
                $option['state'] = input('state');
        }

        return model('RoomsUser')->ModifyReservation($id, $option);
    }

    /**
     * 删除预定信息
     */
    public function reservation_del($id = 0)
    {
        if (empty($id)) {
            return Result(0, '请选择正确的数据');
        }

        return model('RoomsUser')->DeleteReservation($id);
    }

    /**
     * 获取客房的图片列表
     */
    public function image_list($id = 0)
    {
        return model('Rooms')->GetImageList($id);
    }

    /**
     * 创建客房对应的图片
     */
    public function created_image($rooms_id)
    {
        if (empty($url)) {
            return Result(0, '图片url不能为空');
        }
        $url = input('url');
        return model('Rooms')->CreateImage($rooms_id,$url);
    }

    /**
     * 删除图片
     */
    public function del_image($id)
    {
        return model('Rooms')->DelImage($id);
    }

    /**
     * 根据条件单个查询客房
     */
    public function find()
    {
        $account = input('account');
        $type = input('type');

        return model('Rooms')->FindRooms($type, $account);
    }
}
